stdlib.h
হেডার ফাইল এবং এর ফাংশনসমূহstdlib.h
হেডার ফাইলটি সি প্রোগ্রামিং ভাষায় স্ট্যান্ডার্ড লাইব্রেরির বিভিন্ন ফাংশন সরবরাহ করে, যা মেমোরি ম্যানেজমেন্ট, সংখ্যা রূপান্তর, এলিমেন্ট শ্রেণীকরণ এবং বিভিন্ন ইউটিলিটি ফাংশন নিয়ে কাজ করে। প্রোগ্রামাররা এই হেডার ফাইলের ফাংশনগুলো ব্যবহার করে প্রোগ্রামের কার্যকারিতা এবং দক্ষতা বাড়াতে পারেন।
এখানে stdlib.h
হেডার ফাইলের কিছু গুরুত্বপূর্ণ ফাংশন এবং তাদের ব্যাখ্যা দেওয়া হলো।
malloc()
– মেমোরি বরাদ্দ করাmalloc()
ফাংশনটি ডাইনামিক মেমোরি বরাদ্দ করতে ব্যবহৃত হয়। এটি নির্দিষ্ট সংখ্যক বাইটের জন্য মেমোরি বরাদ্দ করে এবং বরাদ্দকৃত মেমোরি ব্লকের শুরুতে একটি পয়েন্টার রিটার্ন করে।
void *malloc(size_t size);
#include <stdio.h>
#include <stdlib.h>
int main() {
int *arr = (int *)malloc(5 * sizeof(int));
if (arr == NULL) {
printf("Memory allocation failed\n");
return 1;
}
// মেমোরি ব্যবহার
for (int i = 0; i < 5; i++) {
arr[i] = i + 1;
}
for (int i = 0; i < 5; i++) {
printf("%d ", arr[i]);
}
free(arr); // মেমোরি মুক্ত করা
return 0;
}
calloc()
– শূন্য-মেমোরি বরাদ্দcalloc()
ফাংশনটি ডাইনামিক মেমোরি বরাদ্দ করে এবং বরাদ্দকৃত মেমোরিকে শূন্য দিয়ে পূর্ণ করে। এটি নির্দিষ্ট সংখ্যক এলিমেন্টের জন্য মেমোরি বরাদ্দ করে এবং প্রতিটি এলিমেন্টকে শূন্য দেয়।
void *calloc(size_t num, size_t size);
#include <stdio.h>
#include <stdlib.h>
int main() {
int *arr = (int *)calloc(5, sizeof(int));
if (arr == NULL) {
printf("Memory allocation failed\n");
return 1;
}
// মেমোরি ব্যবহার
for (int i = 0; i < 5; i++) {
printf("%d ", arr[i]); // প্রতিটি এলিমেন্ট শূন্য
}
free(arr); // মেমোরি মুক্ত করা
return 0;
}
realloc()
– মেমোরি পুনরায় বরাদ্দrealloc()
ফাংশনটি পূর্বে বরাদ্দকৃত মেমোরি ব্লকের আকার পরিবর্তন করতে ব্যবহৃত হয়। এটি পূর্ববর্তী মেমোরি ব্লকের উপরে একটি নতুন আকারের মেমোরি বরাদ্দ করে।
void *realloc(void *ptr, size_t new_size);
#include <stdio.h>
#include <stdlib.h>
int main() {
int *arr = (int *)malloc(5 * sizeof(int));
if (arr == NULL) {
printf("Memory allocation failed\n");
return 1;
}
// মেমোরি ব্যবহার
for (int i = 0; i < 5; i++) {
arr[i] = i + 1;
}
// মেমোরি পুনরায় বরাদ্দ
arr = (int *)realloc(arr, 10 * sizeof(int));
if (arr == NULL) {
printf("Memory reallocation failed\n");
return 1;
}
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
free(arr); // মেমোরি মুক্ত করা
return 0;
}
free()
– মেমোরি মুক্ত করাfree()
ফাংশনটি পূর্বে বরাদ্দকৃত মেমোরি ব্লককে মুক্ত করতে ব্যবহৃত হয়। এটি মেমোরি লিক প্রতিরোধ করে এবং মেমোরি পুনরায় ব্যবহারযোগ্য করে তোলে।
void free(void *ptr);
#include <stdio.h>
#include <stdlib.h>
int main() {
int *arr = (int *)malloc(5 * sizeof(int));
if (arr == NULL) {
printf("Memory allocation failed\n");
return 1;
}
// মেমোরি ব্যবহার
free(arr); // মেমোরি মুক্ত করা
return 0;
}
atoi()
– স্ট্রিং থেকে ইন্টিজার রূপান্তরatoi()
ফাংশনটি একটি স্ট্রিংকে ইন্টিজারে রূপান্তর করে। যদি স্ট্রিংয়ে বৈধ সংখ্যা থাকে, তবে এটি সংখ্যায় রূপান্তর করে।
int atoi(const char *str);
#include <stdio.h>
#include <stdlib.h>
int main() {
char str[] = "123";
int num = atoi(str);
printf("The integer is: %d\n", num);
return 0;
}
atof()
– স্ট্রিং থেকে ফ্লোট রূপান্তরatof()
ফাংশনটি একটি স্ট্রিংকে ফ্লোটে রূপান্তর করে। এটি স্ট্রিংয়ে থাকা সংখ্যাকে ফ্লোটে রূপান্তর করে।
double atof(const char *str);
#include <stdio.h>
#include <stdlib.h>
int main() {
char str[] = "3.14159";
double pi = atof(str);
printf("The float value is: %lf\n", pi);
return 0;
}
rand()
– র্যান্ডম সংখ্যা তৈরিrand()
ফাংশনটি র্যান্ডম সংখ্যা তৈরি করতে ব্যবহৃত হয়। এটি সাধারণত srand()
ফাংশনের সাথে ব্যবহার করা হয়।
int rand(void);
#include <stdio.h>
#include <stdlib.h>
int main() {
for (int i = 0; i < 5; i++) {
printf("%d\n", rand());
}
return 0;
}
srand()
– র্যান্ডম সংখ্যা সিড সেট করাrand()
ফাংশনের আউটপুট ভিন্ন করার জন্য srand()
ফাংশনটি ব্যবহার করা হয়। এটি একটি নির্দিষ্ট সিড দিয়ে র্যান্ডম সংখ্যা তৈরি শুরু করে।
void srand(unsigned int seed);
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
srand(time(0)); // সময়ের ওপর ভিত্তি করে সিড সেট করা
for (int i = 0; i < 5; i++) {
printf("%d\n", rand());
}
return 0;
}
abs()
– অ্যাবসোলিউট মান নির্ণয়abs()
ফাংশনটি একটি পূর্ণসংখ্যার অ্যাবসোলিউট মান নির্ণয় করে। এটি একটি পূর্ণসংখ্যা আর্গুমেন্ট গ্রহণ করে এবং তার অ্যাবসোলিউট মান রিটার্ন করে।
int abs(int n);
#include <stdio.h>
#include <stdlib.h>
int main() {
int num = -10;
printf("Absolute value: %d\n", abs(num));
return 0;
}
ফাংশন | কাজ | উদাহরণ |
---|---|---|
malloc() | ডাইনামিক মেমোরি বরাদ্দ করা | int *arr = (int *)malloc(size); |
calloc() | শূন্য-মেমোরি বরাদ্দ করা | int *arr = (int *)calloc(num, size); |
realloc() | মেমোরি পুনরায় বরাদ্দ করা | arr = (int *)realloc(arr, new_size); |
free() | মেমোরি মুক্ত করা | free(arr); |
atoi() | স্ট্রিং থেকে ইন্টিজার রূপান্তর | int num = atoi(str); |
atof() | স্ট্রিং থেকে ফ্লোট রূপান্তর | double val = atof(str); |
rand() | র্যান্ডম সংখ্যা তৈরি | int r = rand(); |
srand() | র্যান্ডম সংখ্যা সিড সেট করা | srand(time(0)); |
abs() | অ্যাবসোলিউট মান নির্ণয় | int abs_val = abs(num); |
stdlib.h
হেডার ফাইলটি সি প্রোগ্রামিংয়ের বিভিন্ন কাজকে সহজ এবং কার্যকরী করে তোলে। এর ফাংশনগুলো ব্যবহার করে ডাইনামিক মেমোরি ম্যানেজমেন্ট, স্ট্রিং রূপান্তর, র্যান্ডম সংখ্যা তৈরি এবং বিভিন্ন ইউটিলিটি কাজ পরিচালনা করা সম্ভব।
common.read_more